<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Jetson Inference: videoOutput Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="NVLogo_2D.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Jetson Inference
   </div>
   <div id="projectbrief">DNN Vision Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classvideoOutput.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classvideoOutput-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">videoOutput Class Reference<div class="ingroups"><a class="el" href="group__util.html">Utilities Library (jetson-utils)</a> &raquo; <a class="el" href="group__video.html">Video Streaming</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>The <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> API is for rendering and transmitting frames to video input devices such as display windows, broadcasting RTP network streams to remote hosts over UDP/IP, and saving videos/images/directories to disk.  
 <a href="classvideoOutput.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="videoOutput_8h_source.html">videoOutput.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for videoOutput:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classvideoOutput.png" usemap="#videoOutput_map" alt=""/>
  <map id="videoOutput_map" name="videoOutput_map">
<area href="classglDisplay.html" title="OpenGL display window and image/video renderer with CUDA interoperability." alt="glDisplay" shape="rect" coords="0,56,80,80"/>
<area href="classgstEncoder.html" title="Hardware-accelerated video encoder for Jetson using GStreamer." alt="gstEncoder" shape="rect" coords="90,56,170,80"/>
<area href="classimageWriter.html" title="Save an image or set of images to disk." alt="imageWriter" shape="rect" coords="180,56,260,80"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a2186412156484860e31d827c10becf96"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a2186412156484860e31d827c10becf96">~videoOutput</a> ()</td></tr>
<tr class="memdesc:a2186412156484860e31d827c10becf96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy interface and release all resources.  <a href="classvideoOutput.html#a2186412156484860e31d827c10becf96">More...</a><br /></td></tr>
<tr class="separator:a2186412156484860e31d827c10becf96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac63d627d52174400c01c28bb0de82993"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ac63d627d52174400c01c28bb0de82993"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#ac63d627d52174400c01c28bb0de82993">Render</a> (T *image, uint32_t width, uint32_t height)</td></tr>
<tr class="memdesc:ac63d627d52174400c01c28bb0de82993"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render and output the next frame to the stream.  <a href="classvideoOutput.html#ac63d627d52174400c01c28bb0de82993">More...</a><br /></td></tr>
<tr class="separator:ac63d627d52174400c01c28bb0de82993"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e53017c0e49212405391f82fbac876f"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a8e53017c0e49212405391f82fbac876f">Render</a> (void *image, uint32_t width, uint32_t height, <a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406">imageFormat</a> format)</td></tr>
<tr class="memdesc:a8e53017c0e49212405391f82fbac876f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render and output the next frame to the stream.  <a href="classvideoOutput.html#a8e53017c0e49212405391f82fbac876f">More...</a><br /></td></tr>
<tr class="separator:a8e53017c0e49212405391f82fbac876f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58d163c8d3e54f336bf2dda4a759750e"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a58d163c8d3e54f336bf2dda4a759750e">Open</a> ()</td></tr>
<tr class="memdesc:a58d163c8d3e54f336bf2dda4a759750e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begin streaming the device.  <a href="classvideoOutput.html#a58d163c8d3e54f336bf2dda4a759750e">More...</a><br /></td></tr>
<tr class="separator:a58d163c8d3e54f336bf2dda4a759750e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a552252a397249335e77755e0b911225e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a552252a397249335e77755e0b911225e">Close</a> ()</td></tr>
<tr class="memdesc:a552252a397249335e77755e0b911225e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop streaming the device.  <a href="classvideoOutput.html#a552252a397249335e77755e0b911225e">More...</a><br /></td></tr>
<tr class="separator:a552252a397249335e77755e0b911225e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a3cf8d6230e26e27c5d22b29a150bdc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a2a3cf8d6230e26e27c5d22b29a150bdc">IsStreaming</a> () const</td></tr>
<tr class="memdesc:a2a3cf8d6230e26e27c5d22b29a150bdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the device is actively streaming or not.  <a href="classvideoOutput.html#a2a3cf8d6230e26e27c5d22b29a150bdc">More...</a><br /></td></tr>
<tr class="separator:a2a3cf8d6230e26e27c5d22b29a150bdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaba8521f7ff078293ee4052a28ee71c"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#afaba8521f7ff078293ee4052a28ee71c">GetWidth</a> () const</td></tr>
<tr class="memdesc:afaba8521f7ff078293ee4052a28ee71c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the width of the stream, in pixels.  <a href="classvideoOutput.html#afaba8521f7ff078293ee4052a28ee71c">More...</a><br /></td></tr>
<tr class="separator:afaba8521f7ff078293ee4052a28ee71c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa225fb199069cf2a4b30f467e237da73"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#aa225fb199069cf2a4b30f467e237da73">GetHeight</a> () const</td></tr>
<tr class="memdesc:aa225fb199069cf2a4b30f467e237da73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the height of the stream, in pixels.  <a href="classvideoOutput.html#aa225fb199069cf2a4b30f467e237da73">More...</a><br /></td></tr>
<tr class="separator:aa225fb199069cf2a4b30f467e237da73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26c37f79e965f1b9741b4d9b3923bd6b"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a26c37f79e965f1b9741b4d9b3923bd6b">GetFrameRate</a> () const</td></tr>
<tr class="memdesc:a26c37f79e965f1b9741b4d9b3923bd6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the framerate, in Hz or FPS.  <a href="classvideoOutput.html#a26c37f79e965f1b9741b4d9b3923bd6b">More...</a><br /></td></tr>
<tr class="separator:a26c37f79e965f1b9741b4d9b3923bd6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab38d8fb1ad7855cf428d9f8cf5806bb4"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#ab38d8fb1ad7855cf428d9f8cf5806bb4">GetFrameCount</a> () const</td></tr>
<tr class="memdesc:ab38d8fb1ad7855cf428d9f8cf5806bb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of frames output.  <a href="classvideoOutput.html#ab38d8fb1ad7855cf428d9f8cf5806bb4">More...</a><br /></td></tr>
<tr class="separator:ab38d8fb1ad7855cf428d9f8cf5806bb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47edea2ad237e50cfbd6d0a192280ee5"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structURI.html">URI</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a47edea2ad237e50cfbd6d0a192280ee5">GetResource</a> () const</td></tr>
<tr class="memdesc:a47edea2ad237e50cfbd6d0a192280ee5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> of the stream.  <a href="classvideoOutput.html#a47edea2ad237e50cfbd6d0a192280ee5">More...</a><br /></td></tr>
<tr class="separator:a47edea2ad237e50cfbd6d0a192280ee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59f21f27a0efe56541fbe15f1d5f46ce"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structvideoOptions.html">videoOptions</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a59f21f27a0efe56541fbe15f1d5f46ce">GetOptions</a> () const</td></tr>
<tr class="memdesc:a59f21f27a0efe56541fbe15f1d5f46ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the <a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> of the stream.  <a href="classvideoOutput.html#a59f21f27a0efe56541fbe15f1d5f46ce">More...</a><br /></td></tr>
<tr class="separator:a59f21f27a0efe56541fbe15f1d5f46ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2da4bab42fbd19a851e205647443ea5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#ad2da4bab42fbd19a851e205647443ea5">AddOutput</a> (<a class="el" href="classvideoOutput.html">videoOutput</a> *output)</td></tr>
<tr class="memdesc:ad2da4bab42fbd19a851e205647443ea5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an output sub-stream.  <a href="classvideoOutput.html#ad2da4bab42fbd19a851e205647443ea5">More...</a><br /></td></tr>
<tr class="separator:ad2da4bab42fbd19a851e205647443ea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc630f31a8d55dc852ac1e01c1f7dc58"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#adc630f31a8d55dc852ac1e01c1f7dc58">GetNumOutputs</a> () const</td></tr>
<tr class="memdesc:adc630f31a8d55dc852ac1e01c1f7dc58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of sub-streams.  <a href="classvideoOutput.html#adc630f31a8d55dc852ac1e01c1f7dc58">More...</a><br /></td></tr>
<tr class="separator:adc630f31a8d55dc852ac1e01c1f7dc58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1a64933421c48f1af63ea12a8217421"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvideoOutput.html">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#aa1a64933421c48f1af63ea12a8217421">GetOutput</a> (uint32_t index) const</td></tr>
<tr class="memdesc:aa1a64933421c48f1af63ea12a8217421"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a sub-stream.  <a href="classvideoOutput.html#aa1a64933421c48f1af63ea12a8217421">More...</a><br /></td></tr>
<tr class="separator:aa1a64933421c48f1af63ea12a8217421"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7968711adc8814a9ec4e127e7b3a8bb2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a7968711adc8814a9ec4e127e7b3a8bb2">SetStatus</a> (const char *str)</td></tr>
<tr class="memdesc:a7968711adc8814a9ec4e127e7b3a8bb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a status string (i.e.  <a href="classvideoOutput.html#a7968711adc8814a9ec4e127e7b3a8bb2">More...</a><br /></td></tr>
<tr class="separator:a7968711adc8814a9ec4e127e7b3a8bb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaedce68dfff9bd5c3e76c32468632512"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#aaedce68dfff9bd5c3e76c32468632512">GetType</a> () const</td></tr>
<tr class="memdesc:aaedce68dfff9bd5c3e76c32468632512"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the interface type of the stream.  <a href="classvideoOutput.html#aaedce68dfff9bd5c3e76c32468632512">More...</a><br /></td></tr>
<tr class="separator:aaedce68dfff9bd5c3e76c32468632512"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a3ed32e27da1e996dc21c0339dc5a95"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a0a3ed32e27da1e996dc21c0339dc5a95">IsType</a> (uint32_t type) const</td></tr>
<tr class="memdesc:a0a3ed32e27da1e996dc21c0339dc5a95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if this stream is of a particular type.  <a href="classvideoOutput.html#a0a3ed32e27da1e996dc21c0339dc5a95">More...</a><br /></td></tr>
<tr class="separator:a0a3ed32e27da1e996dc21c0339dc5a95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5463fc78e3d259fa18ea2e6349e21c8"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aa5463fc78e3d259fa18ea2e6349e21c8"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#aa5463fc78e3d259fa18ea2e6349e21c8">IsType</a> () const</td></tr>
<tr class="memdesc:aa5463fc78e3d259fa18ea2e6349e21c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a this stream is of a particular type.  <a href="classvideoOutput.html#aa5463fc78e3d259fa18ea2e6349e21c8">More...</a><br /></td></tr>
<tr class="separator:aa5463fc78e3d259fa18ea2e6349e21c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a6c66bde88abdfa857bc9715acb8314"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a5a6c66bde88abdfa857bc9715acb8314">TypeToStr</a> () const</td></tr>
<tr class="memdesc:a5a6c66bde88abdfa857bc9715acb8314"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert this stream's class type to string.  <a href="classvideoOutput.html#a5a6c66bde88abdfa857bc9715acb8314">More...</a><br /></td></tr>
<tr class="separator:a5a6c66bde88abdfa857bc9715acb8314"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:aa2754b5d31e5466ad35db3f2832209f1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classvideoOutput.html">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#aa2754b5d31e5466ad35db3f2832209f1">Create</a> (const <a class="el" href="structvideoOptions.html">videoOptions</a> &amp;options)</td></tr>
<tr class="memdesc:aa2754b5d31e5466ad35db3f2832209f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a <a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> struct that's already been filled out.  <a href="classvideoOutput.html#aa2754b5d31e5466ad35db3f2832209f1">More...</a><br /></td></tr>
<tr class="separator:aa2754b5d31e5466ad35db3f2832209f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a461077573ce4c48ef632956251b64c0a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classvideoOutput.html">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a461077573ce4c48ef632956251b64c0a">Create</a> (const char *<a class="el" href="structURI.html">URI</a>, const <a class="el" href="structvideoOptions.html">videoOptions</a> &amp;options=<a class="el" href="structvideoOptions.html">videoOptions</a>())</td></tr>
<tr class="memdesc:a461077573ce4c48ef632956251b64c0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and optional <a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a>.  <a href="classvideoOutput.html#a461077573ce4c48ef632956251b64c0a">More...</a><br /></td></tr>
<tr class="separator:a461077573ce4c48ef632956251b64c0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc89d40f9294ffbd096aa2e9bcc9a4fb"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classvideoOutput.html">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#acc89d40f9294ffbd096aa2e9bcc9a4fb">Create</a> (const char *<a class="el" href="structURI.html">URI</a>, const <a class="el" href="classcommandLine.html">commandLine</a> &amp;cmdLine)</td></tr>
<tr class="memdesc:acc89d40f9294ffbd096aa2e9bcc9a4fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and parsing command line arguments.  <a href="classvideoOutput.html#acc89d40f9294ffbd096aa2e9bcc9a4fb">More...</a><br /></td></tr>
<tr class="separator:acc89d40f9294ffbd096aa2e9bcc9a4fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a343fb7daf02469fa5d5e604b638b81ff"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classvideoOutput.html">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a343fb7daf02469fa5d5e604b638b81ff">Create</a> (const char *<a class="el" href="structURI.html">URI</a>, const int argc, char **argv)</td></tr>
<tr class="memdesc:a343fb7daf02469fa5d5e604b638b81ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and parsing command line arguments.  <a href="classvideoOutput.html#a343fb7daf02469fa5d5e604b638b81ff">More...</a><br /></td></tr>
<tr class="separator:a343fb7daf02469fa5d5e604b638b81ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a346028a278dd67f6b1d69a69cd496e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classvideoOutput.html">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a7a346028a278dd67f6b1d69a69cd496e">Create</a> (const int argc, char **argv, int positionArg=-1)</td></tr>
<tr class="memdesc:a7a346028a278dd67f6b1d69a69cd496e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface by parsing command line arguments, including the resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>.  <a href="classvideoOutput.html#a7a346028a278dd67f6b1d69a69cd496e">More...</a><br /></td></tr>
<tr class="separator:a7a346028a278dd67f6b1d69a69cd496e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a754e0468210780b75641e08aff6604de"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classvideoOutput.html">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a754e0468210780b75641e08aff6604de">Create</a> (const <a class="el" href="classcommandLine.html">commandLine</a> &amp;cmdLine, int positionArg=-1)</td></tr>
<tr class="memdesc:a754e0468210780b75641e08aff6604de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface by parsing command line arguments, including the resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>.  <a href="classvideoOutput.html#a754e0468210780b75641e08aff6604de">More...</a><br /></td></tr>
<tr class="separator:a754e0468210780b75641e08aff6604de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0122813d68dd88f0e1d1d92fbbc7edd1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classvideoOutput.html">videoOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a0122813d68dd88f0e1d1d92fbbc7edd1">CreateNullOutput</a> ()</td></tr>
<tr class="memdesc:a0122813d68dd88f0e1d1d92fbbc7edd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface that acts as a NULL output and does nothing with incoming frames.  <a href="classvideoOutput.html#a0122813d68dd88f0e1d1d92fbbc7edd1">More...</a><br /></td></tr>
<tr class="separator:a0122813d68dd88f0e1d1d92fbbc7edd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ffc51285e0dc05addf926b5f4598b88"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a4ffc51285e0dc05addf926b5f4598b88">Usage</a> ()</td></tr>
<tr class="memdesc:a4ffc51285e0dc05addf926b5f4598b88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Usage string for command line arguments to <a class="el" href="classvideoOutput.html#aa2754b5d31e5466ad35db3f2832209f1" title="Create videoOutput interface from a videoOptions struct that&#39;s already been filled out.">Create()</a>  <a href="classvideoOutput.html#a4ffc51285e0dc05addf926b5f4598b88">More...</a><br /></td></tr>
<tr class="separator:a4ffc51285e0dc05addf926b5f4598b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b8d053b9564bb2ec042ef9760de23bb"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a1b8d053b9564bb2ec042ef9760de23bb">TypeToStr</a> (uint32_t type)</td></tr>
<tr class="memdesc:a1b8d053b9564bb2ec042ef9760de23bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a class type to a string.  <a href="classvideoOutput.html#a1b8d053b9564bb2ec042ef9760de23bb">More...</a><br /></td></tr>
<tr class="separator:a1b8d053b9564bb2ec042ef9760de23bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a02b39780efc6480ab424764dafe082ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a02b39780efc6480ab424764dafe082ba">videoOutput</a> (const <a class="el" href="structvideoOptions.html">videoOptions</a> &amp;options)</td></tr>
<tr class="separator:a02b39780efc6480ab424764dafe082ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a473772043b363d7c8dc00cddb70b0aa9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a473772043b363d7c8dc00cddb70b0aa9">mStreaming</a></td></tr>
<tr class="separator:a473772043b363d7c8dc00cddb70b0aa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af749bcbea4200ea33a1135f4f040879d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structvideoOptions.html">videoOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#af749bcbea4200ea33a1135f4f040879d">mOptions</a></td></tr>
<tr class="separator:af749bcbea4200ea33a1135f4f040879d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a583b2977fc4b9e1747f1b9199bc583ea"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classvideoOutput.html">videoOutput</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvideoOutput.html#a583b2977fc4b9e1747f1b9199bc583ea">mOutputs</a></td></tr>
<tr class="separator:a583b2977fc4b9e1747f1b9199bc583ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> API is for rendering and transmitting frames to video input devices such as display windows, broadcasting RTP network streams to remote hosts over UDP/IP, and saving videos/images/directories to disk. </p>
<p><a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interfaces are implemented by <a class="el" href="classglDisplay.html" title="OpenGL display window and image/video renderer with CUDA interoperability.">glDisplay</a>, <a class="el" href="classgstEncoder.html" title="Hardware-accelerated video encoder for Jetson using GStreamer.">gstEncoder</a>, and <a class="el" href="classimageWriter.html" title="Save an image or set of images to disk.">imageWriter</a>. <br  />
 The specific implementation is selected at runtime based on the type of resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>. An instance can have multiple sub-streams, for example simultaneously outputting to a display and encoded video on disk or RTP stream.</p>
<p><a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> supports the following protocols and resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s: </p><pre class="fragment">- `display://0` for rendering to display using OpenGL, where `0` corresponds to the display number.
   By default, an OpenGL window will be created, unless the `--headless` command line option is used.

- `rtp://&lt;remote-host&gt;:1234` to broadcast a compressed RTP stream to a remote host, where you should
   substitute `&lt;remote-host&gt;` with the remote host's IP address or hostname, and `1234` is the port.

- `rtsp://@:8554/my_stream` to serve a compressed RTSP stream at the specified port and stream path.
   RTSP clients can connect to the stream at the specified path.  Using this will create a RTSP server
   that can handle multiple videoOutput streams on the same port but with different paths
   (e.g. `rtsp://&lt;hostname&gt;:8554/my_stream_1`, `rtsp://&lt;hostname&gt;:8554/my_stream_2`, ect)

- `webrtc://@:1234/my_stream` to serve a compressed WebRTC stream at the specified port and path
   that browsers can connect to and view.  Users will be able to navigate their browser to
   `http://&lt;hostname&gt;:1234/my_stream` and view a rudimentary video player that plays the stream.
   More advanced web front-ends can be created by using standard client-side Javascript WebRTC APIs.

- `file:///home/user/my_video.mp4` for saving videos, images, and directories of images to disk.
   You can leave off the `file://` protocol identifier and it will be deduced from the path.
   It can be a relative or absolute path.  You can output a sequence of images using a path of
   the form `my_dir/image_%i.jpg` (where `%i` can include printf-style modifiers like `%03i`).  
   The `%i` will be replaced with the image number in the sequence.  If just a directory is
   specified, then by default it will create a sequence of the form `%i.jpg` in that directory.
   Supported video formats for saving include MKV, MP4, AVI, and FLV. Supported codecs for 
   encoding include H.264, H.265, VP8, VP9, and MJPEG. Supported image formats for saving 
   include JPG, PNG, TGA, and BMP.
</pre><dl class="section see"><dt>See also</dt><dd><a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> for info about resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> formats. </dd>
<dd>
<a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for additional options and command-line arguments. </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a2186412156484860e31d827c10becf96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2186412156484860e31d827c10becf96">&#9670;&nbsp;</a></span>~videoOutput()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual videoOutput::~videoOutput </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destroy interface and release all resources. </p>

</div>
</div>
<a id="a02b39780efc6480ab424764dafe082ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02b39780efc6480ab424764dafe082ba">&#9670;&nbsp;</a></span>videoOutput()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">videoOutput::videoOutput </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structvideoOptions.html">videoOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ad2da4bab42fbd19a851e205647443ea5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2da4bab42fbd19a851e205647443ea5">&#9670;&nbsp;</a></span>AddOutput()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void videoOutput::AddOutput </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classvideoOutput.html">videoOutput</a> *&#160;</td>
          <td class="paramname"><em>output</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add an output sub-stream. </p>
<p>When a frame is rendered to this stream, it will be rendered to each sub-stream. </p>

</div>
</div>
<a id="a552252a397249335e77755e0b911225e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a552252a397249335e77755e0b911225e">&#9670;&nbsp;</a></span>Close()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void videoOutput::Close </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Stop streaming the device. </p>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="classvideoOutput.html#a552252a397249335e77755e0b911225e" title="Stop streaming the device.">Close()</a> is automatically called by the <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> destructor when it gets deleted, so you do not explicitly need to call <a class="el" href="classvideoOutput.html#a552252a397249335e77755e0b911225e" title="Stop streaming the device.">Close()</a> before exiting the program if you delete your <a class="el" href="classvideoSource.html" title="The videoSource API is for capturing frames from video input devices such as MIPI CSI cameras,...">videoSource</a> object. </dd></dl>

<p>Reimplemented in <a class="el" href="classgstEncoder.html#a12c9bf5d87ef25783763a221bf66fa8e">gstEncoder</a>.</p>

</div>
</div>
<a id="acc89d40f9294ffbd096aa2e9bcc9a4fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc89d40f9294ffbd096aa2e9bcc9a4fb">&#9670;&nbsp;</a></span>Create() <span class="overload">[1/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classvideoOutput.html">videoOutput</a>* videoOutput::Create </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>URI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcommandLine.html">commandLine</a> &amp;&#160;</td>
          <td class="paramname"><em>cmdLine</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and parsing command line arguments. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for valid command-line arguments to be parsed. </dd>
<dd>
the documentation above and the <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="a343fb7daf02469fa5d5e604b638b81ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a343fb7daf02469fa5d5e604b638b81ff">&#9670;&nbsp;</a></span>Create() <span class="overload">[2/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classvideoOutput.html">videoOutput</a>* videoOutput::Create </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>URI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and parsing command line arguments. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for valid command-line arguments to be parsed. </dd>
<dd>
the documentation above and the <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="a461077573ce4c48ef632956251b64c0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a461077573ce4c48ef632956251b64c0a">&#9670;&nbsp;</a></span>Create() <span class="overload">[3/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classvideoOutput.html">videoOutput</a>* videoOutput::Create </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>URI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structvideoOptions.html">videoOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em> = <code><a class="el" href="structvideoOptions.html">videoOptions</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> string and optional <a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a>. </p>
<dl class="section see"><dt>See also</dt><dd>the documentation above and the <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="a754e0468210780b75641e08aff6604de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a754e0468210780b75641e08aff6604de">&#9670;&nbsp;</a></span>Create() <span class="overload">[4/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classvideoOutput.html">videoOutput</a>* videoOutput::Create </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcommandLine.html">commandLine</a> &amp;&#160;</td>
          <td class="paramname"><em>cmdLine</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>positionArg</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface by parsing command line arguments, including the resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">positionArg</td><td>indicates the positional argument number in the command line of the resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> (or <code>-1</code> if a positional argument isn't used, and should instead be parsed from the <code>--input=</code> option). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for valid command-line arguments to be parsed. </dd>
<dd>
the documentation above and the <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="a7a346028a278dd67f6b1d69a69cd496e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a346028a278dd67f6b1d69a69cd496e">&#9670;&nbsp;</a></span>Create() <span class="overload">[5/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classvideoOutput.html">videoOutput</a>* videoOutput::Create </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>positionArg</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface by parsing command line arguments, including the resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">positionArg</td><td>indicates the positional argument number in the command line of the resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> (or <code>-1</code> if a positional argument isn't used, and should instead be parsed from the <code>--input=</code> option). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> for valid command-line arguments to be parsed. </dd>
<dd>
the documentation above and the <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> struct for more info about resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>'s. </dd></dl>

</div>
</div>
<a id="aa2754b5d31e5466ad35db3f2832209f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa2754b5d31e5466ad35db3f2832209f1">&#9670;&nbsp;</a></span>Create() <span class="overload">[6/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classvideoOutput.html">videoOutput</a>* videoOutput::Create </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structvideoOptions.html">videoOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface from a <a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> struct that's already been filled out. </p>
<p>It's expected that the supplied <a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> already contain a valid resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a>. </p>

</div>
</div>
<a id="a0122813d68dd88f0e1d1d92fbbc7edd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0122813d68dd88f0e1d1d92fbbc7edd1">&#9670;&nbsp;</a></span>CreateNullOutput()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classvideoOutput.html">videoOutput</a>* videoOutput::CreateNullOutput </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create <a class="el" href="classvideoOutput.html" title="The videoOutput API is for rendering and transmitting frames to video input devices such as display w...">videoOutput</a> interface that acts as a NULL output and does nothing with incoming frames. </p>
<p><a class="el" href="classvideoOutput.html#a0122813d68dd88f0e1d1d92fbbc7edd1" title="Create videoOutput interface that acts as a NULL output and does nothing with incoming frames.">CreateNullOutput()</a> can be used when there are no other outputs created and programs expect one to run. </p>

</div>
</div>
<a id="ab38d8fb1ad7855cf428d9f8cf5806bb4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab38d8fb1ad7855cf428d9f8cf5806bb4">&#9670;&nbsp;</a></span>GetFrameCount()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t videoOutput::GetFrameCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the number of frames output. </p>

</div>
</div>
<a id="a26c37f79e965f1b9741b4d9b3923bd6b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26c37f79e965f1b9741b4d9b3923bd6b">&#9670;&nbsp;</a></span>GetFrameRate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float videoOutput::GetFrameRate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the framerate, in Hz or FPS. </p>

</div>
</div>
<a id="aa225fb199069cf2a4b30f467e237da73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa225fb199069cf2a4b30f467e237da73">&#9670;&nbsp;</a></span>GetHeight()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t videoOutput::GetHeight </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the height of the stream, in pixels. </p>

</div>
</div>
<a id="adc630f31a8d55dc852ac1e01c1f7dc58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc630f31a8d55dc852ac1e01c1f7dc58">&#9670;&nbsp;</a></span>GetNumOutputs()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t videoOutput::GetNumOutputs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the number of sub-streams. </p>

</div>
</div>
<a id="a59f21f27a0efe56541fbe15f1d5f46ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59f21f27a0efe56541fbe15f1d5f46ce">&#9670;&nbsp;</a></span>GetOptions()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structvideoOptions.html">videoOptions</a>&amp; videoOutput::GetOptions </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the <a class="el" href="structvideoOptions.html" title="The videoOptions struct contains common settings that are used to configure and query videoSource and...">videoOptions</a> of the stream. </p>

</div>
</div>
<a id="aa1a64933421c48f1af63ea12a8217421"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1a64933421c48f1af63ea12a8217421">&#9670;&nbsp;</a></span>GetOutput()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classvideoOutput.html">videoOutput</a>* videoOutput::GetOutput </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return a sub-stream. </p>

</div>
</div>
<a id="a47edea2ad237e50cfbd6d0a192280ee5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47edea2ad237e50cfbd6d0a192280ee5">&#9670;&nbsp;</a></span>GetResource()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structURI.html">URI</a>&amp; videoOutput::GetResource </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the resource <a class="el" href="structURI.html" title="Resource URI of a video device, IP stream, or file/directory.">URI</a> of the stream. </p>

</div>
</div>
<a id="aaedce68dfff9bd5c3e76c32468632512"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaedce68dfff9bd5c3e76c32468632512">&#9670;&nbsp;</a></span>GetType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual uint32_t videoOutput::GetType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the interface type of the stream. </p>
<p>This could be one of the following values:</p>
<ul>
<li><a class="el" href="classglDisplay.html#a13bebe88c1df15a70255134da202a131" title="Unique type identifier of glDisplay class.">glDisplay::Type</a></li>
<li><a class="el" href="classgstEncoder.html#a0274b5b3365e440b93fd6b5c8bcf2b2e" title="Unique type identifier of gstEncoder class.">gstEncoder::Type</a></li>
<li><a class="el" href="classimageWriter.html#af767ee4c3dfbedd450b5e3c7f86b326a" title="Unique type identifier of imageWriter class.">imageWriter::Type</a> </li>
</ul>

<p>Reimplemented in <a class="el" href="classglDisplay.html#a2dd585c39b61c2b06c4bf21b9663ef93">glDisplay</a>, <a class="el" href="classgstEncoder.html#ab1fd934813f47039bc30aac6238c5bc7">gstEncoder</a>, and <a class="el" href="classimageWriter.html#ae5d8c048302526edb9e6a84edbc4cb97">imageWriter</a>.</p>

</div>
</div>
<a id="afaba8521f7ff078293ee4052a28ee71c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afaba8521f7ff078293ee4052a28ee71c">&#9670;&nbsp;</a></span>GetWidth()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t videoOutput::GetWidth </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the width of the stream, in pixels. </p>

</div>
</div>
<a id="a2a3cf8d6230e26e27c5d22b29a150bdc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a3cf8d6230e26e27c5d22b29a150bdc">&#9670;&nbsp;</a></span>IsStreaming()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOutput::IsStreaming </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the device is actively streaming or not. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the device is streaming (open), or <code>false</code> if it's closed or has reached EOS (End Of Stream). </dd></dl>

</div>
</div>
<a id="aa5463fc78e3d259fa18ea2e6349e21c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa5463fc78e3d259fa18ea2e6349e21c8">&#9670;&nbsp;</a></span>IsType() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOutput::IsType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if a this stream is of a particular type. </p>
<p>Can be used with <a class="el" href="classglDisplay.html" title="OpenGL display window and image/video renderer with CUDA interoperability.">glDisplay</a>, <a class="el" href="classgstEncoder.html" title="Hardware-accelerated video encoder for Jetson using GStreamer.">gstEncoder</a>, and <a class="el" href="classimageWriter.html" title="Save an image or set of images to disk.">imageWriter</a>. For example: <br  />
</p>
<p>if( stream-&gt;<a class="el" href="classvideoOutput.html#a0a3ed32e27da1e996dc21c0339dc5a95" title="Check if this stream is of a particular type.">IsType&lt;glDisplay&gt;()</a> ) glDisplay* display = (glDisplay*)stream; // safe to cast </p>

</div>
</div>
<a id="a0a3ed32e27da1e996dc21c0339dc5a95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a3ed32e27da1e996dc21c0339dc5a95">&#9670;&nbsp;</a></span>IsType() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOutput::IsType </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if this stream is of a particular type. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classvideoOutput.html#aaedce68dfff9bd5c3e76c32468632512" title="Return the interface type of the stream.">GetType()</a> for possible values. </dd></dl>

</div>
</div>
<a id="a58d163c8d3e54f336bf2dda4a759750e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58d163c8d3e54f336bf2dda4a759750e">&#9670;&nbsp;</a></span>Open()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool videoOutput::Open </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Begin streaming the device. </p>
<p>After <a class="el" href="classvideoOutput.html#a58d163c8d3e54f336bf2dda4a759750e" title="Begin streaming the device.">Open()</a> is called, frames from the device can begin to be rendered.</p>
<p><a class="el" href="classvideoOutput.html#a58d163c8d3e54f336bf2dda4a759750e" title="Begin streaming the device.">Open()</a> is not stricly necessary to call, if you call one of the <a class="el" href="classvideoOutput.html#ac63d627d52174400c01c28bb0de82993" title="Render and output the next frame to the stream.">Render()</a> functions they will first check to make sure that the stream is opened, and if not they will open it automatically for you.</p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> if an error occurred opening the stream. </dd></dl>

<p>Reimplemented in <a class="el" href="classgstEncoder.html#a39bac88df0521b855a01aeb58953815e">gstEncoder</a>, and <a class="el" href="classglDisplay.html#a65a2ec3a8dae7febff9c1e46b426c891">glDisplay</a>.</p>

</div>
</div>
<a id="ac63d627d52174400c01c28bb0de82993"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac63d627d52174400c01c28bb0de82993">&#9670;&nbsp;</a></span>Render() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOutput::Render </td>
          <td>(</td>
          <td class="paramtype">T *&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>height</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Render and output the next frame to the stream. </p>
<p>The image formats supported by this templated version of <a class="el" href="classvideoOutput.html#ac63d627d52174400c01c28bb0de82993" title="Render and output the next frame to the stream.">Render()</a> include the following:</p>
<ul>
<li>uchar3 (<code>IMAGE_RGB8</code>)</li>
<li>uchar4 (<code>IMAGE_RGBA8</code>)</li>
<li>float3 (<code>IMAGE_RGB32F</code>)</li>
<li>float4 (<code>IMAGE_RGBA32F</code>)</li>
</ul>
<p>The image format will automatically be deduced from these types. If other types are used with this overload, a static compile-time error will be asserted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">image</td><td>CUDA pointer containing the image to output. </td></tr>
    <tr><td class="paramname">width</td><td>width of the image, in pixels. </td></tr>
    <tr><td class="paramname">height</td><td>height of the image, in pixels. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> on error. </dd></dl>

</div>
</div>
<a id="a8e53017c0e49212405391f82fbac876f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e53017c0e49212405391f82fbac876f">&#9670;&nbsp;</a></span>Render() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool videoOutput::Render </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406">imageFormat</a>&#160;</td>
          <td class="paramname"><em>format</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Render and output the next frame to the stream. </p>
<p>The image formats supported by <a class="el" href="classvideoOutput.html#ac63d627d52174400c01c28bb0de82993" title="Render and output the next frame to the stream.">Render()</a> are <code>IMAGE_RGB8</code> (uchar3), <code>IMAGE_RGBA8</code> (uchar4), <code>IMAGE_RGB32F</code> (float3), and <code>IMAGE_RGBA32F</code> (float4). </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406" title="The imageFormat enum is used to identify the pixel format and colorspace of an image.">imageFormat</a> for more info.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">image</td><td>CUDA pointer containing the image to output. </td></tr>
    <tr><td class="paramname">width</td><td>width of the image, in pixels. </td></tr>
    <tr><td class="paramname">height</td><td>height of the image, in pixels. </td></tr>
    <tr><td class="paramname">format</td><td>format of the image (</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__imageFormat.html#ga931c48e08f361637d093355d64583406" title="The imageFormat enum is used to identify the pixel format and colorspace of an image.">imageFormat</a>) </dd></dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success, <code>false</code> on error. </dd></dl>

<p>Reimplemented in <a class="el" href="classglDisplay.html#a5f4e4625ea4d5c1d875dc521d38ace0d">glDisplay</a>, <a class="el" href="classgstEncoder.html#a84bcc87ed05ba1c02bbb1c95e430a3d3">gstEncoder</a>, and <a class="el" href="classimageWriter.html#a6867f5326a09025d9a21bf3932314635">imageWriter</a>.</p>

</div>
</div>
<a id="a7968711adc8814a9ec4e127e7b3a8bb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7968711adc8814a9ec4e127e7b3a8bb2">&#9670;&nbsp;</a></span>SetStatus()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void videoOutput::SetStatus </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set a status string (i.e. </p>
<p>status bar text on display window). Other types of interfaces may ignore the status text. </p>

<p>Reimplemented in <a class="el" href="classglDisplay.html#a63804bbc679034342b14fe4c2c4da042">glDisplay</a>.</p>

</div>
</div>
<a id="a5a6c66bde88abdfa857bc9715acb8314"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a6c66bde88abdfa857bc9715acb8314">&#9670;&nbsp;</a></span>TypeToStr() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char* videoOutput::TypeToStr </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert this stream's class type to string. </p>

</div>
</div>
<a id="a1b8d053b9564bb2ec042ef9760de23bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b8d053b9564bb2ec042ef9760de23bb">&#9670;&nbsp;</a></span>TypeToStr() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* videoOutput::TypeToStr </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Convert a class type to a string. </p>

</div>
</div>
<a id="a4ffc51285e0dc05addf926b5f4598b88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ffc51285e0dc05addf926b5f4598b88">&#9670;&nbsp;</a></span>Usage()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* videoOutput::Usage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Usage string for command line arguments to <a class="el" href="classvideoOutput.html#aa2754b5d31e5466ad35db3f2832209f1" title="Create videoOutput interface from a videoOptions struct that&#39;s already been filled out.">Create()</a> </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="af749bcbea4200ea33a1135f4f040879d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af749bcbea4200ea33a1135f4f040879d">&#9670;&nbsp;</a></span>mOptions</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structvideoOptions.html">videoOptions</a> videoOutput::mOptions</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a583b2977fc4b9e1747f1b9199bc583ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a583b2977fc4b9e1747f1b9199bc583ea">&#9670;&nbsp;</a></span>mOutputs</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="classvideoOutput.html">videoOutput</a>*&gt; videoOutput::mOutputs</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a473772043b363d7c8dc00cddb70b0aa9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a473772043b363d7c8dc00cddb70b0aa9">&#9670;&nbsp;</a></span>mStreaming</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool videoOutput::mStreaming</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>jetson-utils/<a class="el" href="videoOutput_8h_source.html">videoOutput.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classvideoOutput.html">videoOutput</a></li>
    <li class="footer">Generated on Fri Mar 17 2023 14:29:30 for Jetson Inference by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
